23

» WarCraft 3 / Индикатор здоровья

Похожие вопросы:

ответ
KaneThaumaturge:
Скорей всего от модели, и ее расположения, недавно качал модель нестандартную и индикатор очень сильно был опущен вниз.
и ещё от параметра «Строка состояния» в РО
ответ
Вопрос Закрыт
ответ
KoGader, зависит, как уже сказали, от разрешения экрана. У меня тоже исчезает, допустим.

23

» WarCraft 3 / Где ошибка

Похожие вопросы:

ответ
напиши создателю mdlvis
если найдёшь его а также у него будут исходники и желание фиксить баги то мб пофиксит
но скорее всего как минимум 2 и 3 пунктов будут отсутствовать
ответ
~8gabriel8:
Попробуй рецепт Боромира.
P. S. Мне не помогло, дал посмотреть модельщику.
Короче, модельщики тоже не знают. Один сообщил, что это модель из Доминиона, там работает. А почему в других картах глючит непонятно
P. P. S. Модельщик снова взялся разбираться с моделью. Оказалось, что они лишь внешне похожи. В Доминионе модель абсолютно такая же, но использует больше текстур. Возьми оттуда.
P. P. P. S. Ну всё, вопрос решён.
ответ
Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
А можно передать локальную переменную на простую функцию?(вроде можно)
ответ
Не особо шарю, но :
-отключить антивирус
-переустанови jngp

23

» WarCraft 3 / группы предметов

Похожие вопросы:

ответ
Сдаётся мне что в таких недрах не ступала нога среднестатистического варкрафтера.

23

» WarCraft 3 / Урон героя 0

Похожие вопросы:

ответ
elzutar, сначала читаем статьи
и только потом задаём вопросы
лично я бы делал через 1 триггер и стек
это если муи
а если не муи то можно и без стека
вместо молота и дами можно давать баш с 100% шансом стана
в общем код переписать а автора в статьи
ответ
Есть специальный ресурс , в котором ты можешь заказать способность , которую не можешь сделать сам.
ответ
а нафига так много ифов?
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
Steal nerves:
Нее, ошибся. Поройся в настройках игрока.
Если компьютер, то норм работает на юнитов (убивает с первого раза)
Если человек. Поставил в настройках игрока человека. то теперь не хочет чит работать. Видимо чит рассчитан на ботов, на игроков не предусмотрен.
Это можно использовать в качестве анти-чита. Но это полезно разве, что в сингл-плеере. Хотя читы тоже работают в сингле.
раскрыть
Еще поставил резервный. Отображается как нейтральный. Кликнул по нему, мой герой подошел - видимо хотел ударить, и герой резервного перешел на мою сторону. Чего это он? Я думал это резервные это 15-16 игроки, да чего там. Видимо этот переход работает на 1-12, не знаю. Впадлу проверять

23

» WarCraft 3 / Модификатор видимости

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
В варкрафте нет функций, которые очищали бы переменные. Разберись с терминами.
Функция
native RemoveLocation takes location whichLocation returns nothing
Удаляет точку, а не очищает переменную.
За удаление модификатора видимости отвечает
native DestroyFogModifier takes fogmodifier whichFogModifier returns nothing

23

» WarCraft 3 / Стаки статов

Похожие вопросы:

ответ
Пункт " убить боевую единицу" отвечает за то сможет ли урон от яда убить Юнита, если флаг не установлен то у Юнита останется 1-2 хп. Но яд не может его убить.
Разумеется не работают яд. Стрелы на маг иммунитет, ибо это активный автокаст.
Чтобы автокаст стрелы работали на маг. Имун нужно чтобы способность относилась к герою, требуемый для изучения уровень был выше 1. Вот и все.

23

» WarCraft 3 / Урон от оружия

Похожие вопросы:

ответ
Возможно дело в лимите символов. Для кирилицы это серьезная проблема т.к. один кирилический символ занимает две позиции, другими словами лимит для русских надписей в два раза меньше реального.
Сразу скажу, эта проблема не решается. Частично помогает замена одинаковых символов, например "a" в латинице и кирилице выглядит одинаково, но занимает разное кол-во позиций.
ответ
кхе, всё вроде можно, но объяснять долго, третье простое, просто при юзании способности в триггерах добавь условие сравнения, если юнит цель применяемой способности нежить, тогда действие о дополнительном уроне, например если способность наносит 100, то 20% это 20,в действии приказать применяющий юнит нанести урон юнит цель применяемой способности 100+(0.20х100), перед этим 100 можно установить, как переменную, например если с каждым уровнем урон растёт на 100, то переменная int=100хУровень способности способность у применяющий юнит.
Сложно объяснил?

23

» WarCraft 3 / цель заклинания: предмет

Похожие вопросы:

ответ
Я так и сделал, не получалось потому, что надо два заклинания делать....
Один буферизуется другой нет... Еще один вопрос по теме, что значит буферизуется\не буферизуется? И можно тему закрывать.

23

» WarCraft 3 / Обнуление спецэффектов

Похожие вопросы:

ответ
мне кажется или афтар вообще не знает джасс но пытается писать на нём?
SсRealm, фильтр это булексп
SсRealm:
Правильно ли сделано в моем примере
нет
ты сам подумай
ты в цикле добавляешь юнита в группу а потом удаляешь группу
на следующей итерации пытаешься добавить в группу но группы нету
локальные переменные вообще нигде не юзаются
хз зачем они
в цикле же используется совсем другая группа
так что все действия с твоей группой бессмысленны ибо она нигде не используется
статьи надо читать полностью и по порядку
а не кусками
"я хз что такое переменные и как их юзать но сейчас уберу все утечки" не прокатит
короче прочти хотя бы первые 30 статей про jass и первые 20 про гуи
SсRealm:
обнуление pick every unit
где именно ты её обнуляешь
скрин строки в студию
короче вопрос пока что закрыт
подучи матчасть
потом вернёмся к этому вопросу (если он всё ещё будет после того как поймёшь как юзать переменные)

23

» WarCraft 3 / Использование SetUnitFlyHeight

Похожие вопросы:

ответ
nvc123:
Bornikkeny, сделал специально чтобы доказать тебе что ты несёшь бред
даже 2 скрина приложил
думаю закинуть библиотеки сможешь сам (в папку *твой jngp*\AdicHelper\lib)
Хорошо группы реализуешь как альтернативу unit[array]. Я тоже самое получил.
nvc123, и всё же твой хук не тот что мне нужен.
Я решил проблему, спасибо что дал идею обрабатывать движение внутри структуры, а не в стеке.
кот
library Hook initializer Init_Hook uses LibMath

globals
    mhook   ahook[100]
    integer ihook = -1
endglobals
    
struct mhook
        unit       host = null
        unit       target = null
        real       face = 0
        real       speed = 0
        real       dis = 0
        real       dismax = 0
        integer    chaini = 0
        unit       chain[50]
        real       scale = 0
        integer    move = 1
        integer    i = 0
		
		
        static method Create takes unit host, real tx, real ty, real scale returns mhook
        local mhook h = mhook.create()
        local integer i = GetPlayerId(GetOwningPlayer(host))
        local real x = GetUnitX(host)
        local real y = GetUnitY(host)
        local real f = GetAngleXY(x,y,tx,ty)
            set h.host = host
            set h.face = f
            set h.speed = 600
            set h.dismax = 1400
            set h.scale = scale
            set h.chain[0] = CreateUnit(Player(i),'h007',GetPolarX(GetUnitX(host),f,h.scale/2),GetPolarY(GetUnitY(host),f,h.scale/2),f)
            set h.i = i
            call UnitAddAbility(h.chain[0],'Amrf')
            call UnitAddAbility(h.chain[0],'Amrf')
            call SetUnitFlyHeight(h.chain[0],50,0)
            call SetUnitPathing(h.chain[0],false)
            return h
        endmethod
        
        method Start takes nothing returns boolean
            if ihook < 1000 then  
                set ihook = ihook + 1
                set ahook[ihook] = this
                return true
            else
                return false
            endif
        endmethod
        
        method Destroy takes nothing returns nothing
        local integer i = 0
            loop
            exitwhen i > ihook
                if ahook[i] == this then
                    set ahook[i] = ahook[ihook]
                    set ahook[ihook] = 0
                    set ihook = ihook - 1
                    set i = ihook // выход из цикла
                endif
            set i = i + 1
            endloop
            set this.target = null
            set this.host = null
            call this.destroy()
        endmethod
        
        method Move takes nothing returns nothing
        local integer i1 = 0
        local integer l = 0
        local real x
        local real y
        local real xh
        local real yh
        local real f
            if move == 1
                set dis = dis + speed*0.025
                loop
                 exitwhen i1 > .chaini
                    set x = GetUnitX(.chain[i1])
                    set y = GetUnitY(.chain[i1])
                    if i1 > 0 then
                        set f = GetAngleXY(x,y,GetUnitX(.chain[i1-1]),GetUnitY(.chain[i1-1]))
                        call SetUnitX(.chain[i1],GetPolarX(x,f,.speed*0.025))
                        call SetUnitY(.chain[i1],GetPolarY(y,f,.speed*0.025))
                    else    
                        set f = face
                        call SetUnitX(chain[i1],GetPolarX(x,f,.speed*0.025))
                        call SetUnitY(chain[i1],GetPolarY(y,f,.speed*0.025))
                    endif
                    call SetUnitFacing(chain[i1],f)
                 set i1 = i1 + 1
                endloop
                set x = GetUnitX(chain[chaini])
                set y = GetUnitY(chain[chaini])
                set f = GetAngleXY(GetUnitX(.host),GetUnitY(.host),x,y)
                set xh = GetPolarX(GetUnitX(.host),f,.scale/2)
                set yh = GetPolarY(GetUnitY(.host),f,.scale/2)
                //Create==================
                
                if GetDisXY(xh,yh,x,y) >= .scale/2 then
                    set chaini = chaini + 1
                    set chain[chaini] = CreateUnit(Player(.i),'h007',xh,yh,f)
                    call UnitAddAbility(.chain[.chaini],'Amrf')
                    call UnitAddAbility(.chain[.chaini],'Amrf')
                    call SetUnitFlyHeight(.chain[.chaini],50,0)
                endif
                if dis > dismax then
                    set move = 0
                endif
            else
                //REVERSE=============
                set xh = GetUnitX(host)
                set yh = GetUnitY(host)
                set chain[chaini+1] = host
                loop
                exitwhen l > chaini
                        set x = GetUnitX(chain[l])
                        set y = GetUnitY(chain[l])
                        //if chain[chaini] == null then
                        //    set f = GetAngleXY()
                        //endif
                        set f = GetAngleXY(x,y,GetUnitX(chain[l+1]),GetUnitY(chain[l+1]))
                        call SetUnitX(chain[l],GetPolarX(x,f,speed*0.025))
                        call SetUnitY(chain[l],GetPolarY(y,f,speed*0.025))
                        call SetUnitFacing(chain[l],f-180)
                set l = l + 1
                endloop
                //Destroy==================
                set x = GetUnitX(chain[chaini])
                set y = GetUnitY(chain[chaini])
                set xh = GetUnitX(host)
                set yh = GetUnitY(host)
                if GetDisXY(GetUnitX(chain[chaini]),GetUnitY(chain[chaini]),GetUnitX(host),GetUnitY(host)) < 100 then
                    call RemoveUnit(chain[chaini])
                    set chain[chaini] = null
                    set chaini = chaini - 1
                    if chaini == -1 then
                        call .Destroy()
                    endif
                endif
            endif
        endmethod
        
endstruct

private function Engine takes nothing returns nothing
local integer i = 0
local mhook h
local group g
local unit t 
    loop
    exitwhen i > ihook
        if ahook[i] != 0 then
            set h = ahook[i]
            //--run--//
            call h.Move()
        else
            set ahook[i] = ahook[ihook]
            set ahook[ihook] = 0
            set ihook = ihook - 1
            set i = i - 1 
        endif
    set i = i + 1
    endloop
    //call DestroyGroup(g)
    set g = null
    set t = null
endfunction

function Trig_HookC_Bool takes nothing returns boolean
    if GetSpellAbilityId() == 'A01D' then //Способность Мясной хук
        return true
    else
        return false
    endif
endfunction

function Trig_HookC_Actions takes nothing returns nothing
local mhook h
    set h = mhook.Create(GetSpellAbilityUnit(),GetSpellTargetX(),GetSpellTargetY(),110)
    call h.Start()
endfunction

function Init_Hook takes nothing returns nothing
local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( t, function Trig_HookC_Actions )
    call TriggerAddCondition(t,function Trig_HookC_Bool)
    call TimerStart(CreateTimer(),0.025,true,function Engine)
endfunction

endlibrary
ответ
Вариант по индексу не хотелось бы, ввиду использования для разных моделей.
Придётся. Walk не играется триггерно при нормальных условиях.
Впрочем можно заставить проигрывать walk поставив юниту скорость движения 0 в редакторе объектов.

23

» WarCraft 3 / Стандартные модели

Похожие вопросы:

ответ
Просто скопировать путь к модели у декорации - не выход, т.к. декорация имеет вариации, юниты - нет. Хотя если прописать конкретную вариацию декорации а не разрушаемого объекта - то отображается. Кажется в декорациях есть парочка деревьев.
ответ
Скорее всего никак. Если в импорте указать стандартный путь текстуры, то она заменится и будет недоступна.
ответ
Алексей777, легко. Заходим в редактор объектов, ищем пункт "Файл модели" (в этом случае - "units\creeps\NightElfBattleship\NightElfBattleship") и выковыриваем его из mpq.

23

» WarCraft 3 / Анимирование

Похожие вопросы:

ответ
У тебя не были проставлены кадры и положения текстуры. В прикрепленных файлах рабочая модель.
В war3me
ответ
Если скелет не изменен то можно не париться т.е. если ты только поменял текстуру пехотинца,а не саму модель
ответ
darkowlom, точно, я несколько лет назад тоже пробовал эту модель - так же исчезала при определённом AoA.
KaneThaumaturge, посмотри 38 комментарий в этой теме, может быть поможет.
ответ
Вообще-то и Texture manager и Sequence manager находятся в War3Modeleditor. "Windows" это не название ОС, это переводится как "окна".

23

» WarCraft 3 / Dissipate

Похожие вопросы:

ответ
это не стол заказов а модуль Q/A
с просьбой о помощи в модели на заказ (или как она там называется)

23

» WarCraft 3 / Compile error.

Похожие вопросы:

ответ
Может надо переустановить варик? Просто в Way of Others'е у меня было именно так я переустановил его и всё нормально.
А карту сохранить в другой папке.

23

» WarCraft 3 / Способность с зарядами.

Похожие вопросы:

ответ
задержался немног
вобщем там в разделе глобалс указываешь равкоды и время,скил лучше скопируй
триггер скопируешь в свою мапу
и код лучше не читай(вредит зрению)
ответ
Идеальный вариант чтобы игрок сам мог решать, нужно ли ему это. Сделай, если будет смотреться неплохо. И каким то образом запилить возможность выключения этой фичи.
ответ
Урон настраивается через уровень способности, или как было сказано unit - damage target
команда для использования нестандартной способности берется от той способности, на основе которой ты её сделал, и если это цепь тралла - Unit - issue order with targetign a unit - orc - chain lighting
ответ
У нас 3 абилки могут отображать счетчик зарядов, совы охотницы, ракеты у осадных гномов и баг с техникой (подходит для пассивок)
Далее тока куча абилок с разными иконками..
ответ
Очень просто, проверяем каст по приказу юза предмета и если цель неподходящая то дропаем предмет юниту под ноги, а потом заставляем подобрать его.

23

» Unity / Поиск объекта

Похожие вопросы:

ответ
Если я правильно понял, ты хочешь добавить в какой-либо массив юнита, который находится в триггере и соответствует некоторым условиям ( в данном случае tag = "Tag" и lvl = 5) ? Я тут использовал лист, т.к. с ним удобнее работать, но при желании ты можешь юзать статический массив.
код
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class Test : MonoBehaviour {

    public List<GameObject> Units = new List<GameObject>();
    void OnTriggerStay2D(Collider2D col)
    {
        if (col.tag == "Tag" || col.GetComponent<MyComponent>().lvl == 5)
        {
            Units.Add(col.gameObject);
        }
    }

23

» WarCraft 3 / Отмена приказа предмета

Похожие вопросы:

ответ
Порядок строк ид приказа не сменить, это работает только у канала ибо это спец скилл для визуального эффекта. У морфов это работать не будет.

23

» WarCraft 3 / war3mapImported

Похожие вопросы:

ответ
Модель можешь расположить куда захочешь, а вот текстура должна быть в корне карты(в модели она так занесена).
\flag.blp
Должно работать, пробуй.

23

» WarCraft 3 / Утечки

Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
еще раз - лучше скачать handle counter и посмотреть его показания, сколько объектов создается при касте
стремление сделать все безутечно похвально, но все хорошо в меру
ответ
Steal nerves:
Да. При чем две.( Position of Dying unit ).
скрин скинул выше, но там ошибка. И если раскрыть, то обнаруживается еще одна утечка: на гуи Point(0,0), а на jass эта команда называется по-другому Location(0,0), эта функция создает точку
раскрыть
попробуй раскрутить, и использовать эту
native CreateItem takes integer itemid, real x, real y returns item
через CS: call CreateItem( id, GetUnitX(u), GetUnitY(u))
где id - ид-номер типа предмета, u - юнит. Ввести тип предмета, и юнита нужно.
можно еще запомнить как-то, чтобы к предмету как-то обращаться
через CS: set it = CreateItem( id, GetUnitX(u), GetUnitY(u))
где it - переменная предмета. Объявить переменную и обращаться
ответ
Нет, 100 раз писали Player не вызывает утечек, их не нужно обнулять.
Бот выдал ссылку на статьи, прошу прочитать...

23

» WarCraft 3 / Текстура склона

Похожие вопросы:

ответ
Сначала, Хоффман, думал обозвать тебя лентяем, но потом не удивился, почему ты ничего не нашел !!!
Близзарди засунули ети текстуры очень глубоко:
в архиве War3x.mpq есть архивы с названиями в виде букв английского алфавита, так вот твои заветние текстуры ето Cliff0.blp и Cliff1.blp в архиве Z.mpq.
Итого: War3x.mpq / Z.mpq / ReplaceableTextures / Cliff / Cliff0.blp
War3x.mpq / Z.mpq / ReplaceableTextures / Cliff / Cliff1.blp
ответ
Как вариант - попытаться в одной текстуре клиффов попробовать разместить сразу два визуальных решения.
Текстуры клиффов находятся в mpq архиве по адресу ReplaceableTextures\Cliff\
Текстура клиффов
A. рандумные поверхности клиффов
B. тайлинг прямых граней, верхушка клиффа
C. тайлинг прямых граней, низ клиффа
D. угловые тайлы, выбирается 1 рандумный
E. угловые тайлы, низ клиффа
F. применяютя у мостов и подъёмников
Каждому клиффсету принадлежит два файла:
Угловатые клифы ReplaceableTextures\Cliff\Cliff0.blp
Прямые клифы ReplaceableTextures\Cliff\Cliff1.blp
Вроде всё правильно написал, если не прав поправьте.
ответ
Декорации склонов не подходят?
ответ
Мне не надо так, мне надо что-бы КАЖДЫЙ клиф КАЖДОГО таила был свои, со своими текстурами
в очередной раз великие планы рушатся под натиском жестокой реальности

23

» WarCraft 3 / Событие на получение урона

Похожие вопросы:

ответ
Это давно обсуждалось. вопрос удаление события
Создание триггер события — 3 утечки. Стереть переменный триггер, и минус 1. Получается остается 2 утечки.
Вот если удалить юнита (Remove unit), то он стирается из события другого триггера?
Ответ: Да есть способ: вот шпаргалка
ответ
Ruslan24, событие - юнит атакован. Он не показывает урон. Событие на урон добавляется конкретному юниту при входе в игровой рект или инициализации.
ответ
Урон настраивается через уровень способности, или как было сказано unit - damage target
команда для использования нестандартной способности берется от той способности, на основе которой ты её сделал, и если это цепь тралла - Unit - issue order with targetign a unit - orc - chain lighting
ответ
Nifistofi, делая неуязвимым не на 0,01 а на 0,00
ответ
Steal nerves:
связь триггеров
  1. ПРИКАЗ сначало юнит Б получает атаковать цель А. Может стоять далеко от нее, поэтому бежит поближе к цели А.
  2. АНИМАЦИЯ Потом начинает замахиваться, производить анимацию атаки. Короче событие юнит атакован помогает сказать, когда начнется анимация атаки. Надо понимать, что она не сейчас производится, а будет через секунду. За это время можно успеть отменить атаку, или сменить анимацию атаки.
  3. УРОН Событие юнит получает урон показывает. что юнит получил еще урона, а получит урон. Можно сделать всякие хитрости со здоровьем и прочее. Еще нужно знать. что "юнит атакован" не равно "юнит получает урон". Потому что например, если запустить стрелу. то прилетит не сразу. да и промахнутся можно
Юнит получил приказ атаковать - реагирует на того, кто получил приказ. И того кого хотят атаковать.
Юнит атакован - реагирует на того. кого атаковали. И на того. кто является инициатором атаки.
Получает урон - реагирует на того кто получил урон. И кто нанес. Еще можно узнать сколько нанесли урона.
дубль 2
"Юнит атакован" не равно "Юнит получил приказ атаковать". По логике все верно, но должен получить приказ, затем подбежать поближе, а потом ударить или стрельнуть.
"Юнит атакован" срабатывает в тот момент, когда начинает делать анимацию атаки (замах, начинает натягивать лук и прочее. У кого что.). Короче событие срабатывает, но анимация происходит через 0.00 секунд.
Когда юнит проигрывает анимацию атаки (клинком проникает глубже в противника, из лука вылетает стрела и летит, снаряды из мортир летят к цели, и прочее). Можно отменить приказом (только вот не знаю у ренживиков выпущенные снаряды продолжают летать), проверяй до момента получения урона получал какой-нибудь другой приказ.
"Юнит получает урон" - фиксирует получение урона. А это фиксирует, что атака была успешна, только более поздняя фиксация

23

» WarCraft 3 / нужна модель

Похожие вопросы:

ответ
Поиск по сайту, если не нашлось, сперва сюда:
Потом сюда:

В следующий раз за такие темы будут варны.
ответ
Статьи по конвертации из других игр в самом низу
Тема для заказа на модели
ответ
ответ
Есть ссылка на подходящую тему: xgm.guru/p/wc3/needmodels
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны

23

» WarCraft 3 / Как отследить?

Похожие вопросы:

ответ
Если нету баффа, а тупо урон то кастуем скилл даммиком и проверяем на урон от этого дамми юнита.
ответ
quq_CCCP, а если за монстра дали 8 голды?) А если расходы?
(Upkeep)

Помочь тебе может такая функция - Игрок - Player score - золота добыто.
Когда изменяется количество золота игрока - можно сравнивать предыдущее значение добытого золота и текущее.
(К счастью для тебя этот пункт не считает награду за уничтожение)
ответ
Каждую секунду пикаешь юнитов по всей карте,если есть бафф то дать способность если нету баффа и есть способность (крита) то удалить способность
ответ
Проверкой на неуязвимость есть 2 версии проверки, одна требует мемхак а друга нет.
Там проверка на то что дамми юнит сможет нанести урон юниту или нет, если не сможет - юнит неуязвим.
ответ
Я думаю захват делается не так, как у тебя - у тебя захват будет мгновенный
Там нужна целая переменная на прогресс захвата, и переменные для подсчета юнитов с обеих команд для того чтобы найти скорость захвата